from functools import wraps

def a_new_decorator(a_func):
	@wraps(a_func)
	def wrapTheFunction():
		print("I am doing something boring work before excuting a_func()")

		a_func()

		print("I am doing something boring work after excuting a_func()")
	return wrapTheFunction

def a_function_requiring_decoration():
	print("I am the function which needs some decoration to remove my foul smell")

a_function_requiring_decoration()

print("-------")
a = a_new_decorator(a_function_requiring_decoration)
a()


@a_new_decorator
def a_function_requiring_decoration2():
	"""Decorate me"""
	print("I am the function which needs some decoration to remove my foul smell")

a_function_requiring_decoration2()